草庐IT

iOS 可重用组件

全部标签

c# - System.IO.FileStream 在大文件上 super 慢

我有一段代码需要能够修改文件末尾的几个字节。问题是文件很大。高达100+Gb。我需要操作尽可能快,但经过几个小时的谷歌搜索后,.Net似乎在这里相当有限???我一直在尝试使用System.IO.FileStream并且不知道其他方法。“反向”文件流可以,但我知道如何创建一个(从末尾而不是从头开始写)。这是我所做的一些事情:(注意:时间是在关闭流时花费的)staticvoidMain(string[]args){//Simulatealargefileintsize=1000*1024*1024;stringfilename="blah.dat";FileStreamfs=newFile

C# I/O - System.IO.File 和 StreamWriter/StreamReader 之间的区别

假设我只对处理文本文件感兴趣,那么与StreamWriter相比,System.IO.File方法有哪些具体优势或劣势?是否涉及任何性能因素?基本区别是什么,在什么情况下应该使用哪些?还有一个问题,如果我想将一个文件的内容读入一个字符串并对其运行LINQ查询,哪个最好? 最佳答案 在File类中看似重复的方法背后有一段有趣的历史。它是在对.NET的预发布版本进行可用性研究之后产生的。他们请了一群有经验的程序员编写代码来操作文件。他们以前从未接触过.NET,只是有文档可以使用。成功率为0%。是的,有区别。当您尝试读取一个GB或更大的文

c# - csproj 文件中的可重用 PropertyGroup 元素

我需要在大约15个项目中设置一系列属性。有没有办法将这些属性放在一个文件中,并让所有项目文件使用某种导入指令引用一个文件,而不是在每个项目文件中复制属性?编辑:为了澄清,我说的是csproj文件中的元素。所有项目都需要同一系列的设置。这些元素设置类似DebugSymbols的属性或DefineDebug,并且不用于引用源文件。 最佳答案 元素可用于此,类似于自定义目标文件的使用方式。可重用文件应如下所示:请注意,拥有根Project元素与xmlns声明是必需的-如果没有它,VS将不会加载引用此文件的项目。我已将我的属性设置保存在我的

c# - 优化 C# 文件 IO

场景-150MB的文本文件,它是旧电子邮件帐户的导出收件箱。需要解析并提取来自特定用户的电子邮件,并将这些电子邮件写入一个新的单个文件。我有可用的代码,它只是太慢了。我正在使用标记字符串来搜索从原始文件开始/结束副本的位置。这是主要功能:StreamReadersr=newStreamReader("c:\\Thunderbird_Inbox.txt");stringworking=string.Empty;stringmystring=string.Empty;while(!sr.EndOfStream){while((mystring=sr.ReadLine())!=null){i

c# - 我应该在不同的 View 中重用 View 模型吗?

我注意到我的View需要与其他人相同的信息。但有时你需要View模型的5个属性,有时只需要2个。您是否在多个View中共享这样的View模型,或者您是否为每个View创建一个单独的View模型,或者您是否更喜欢继承或组合策略?对我来说共享View模型有一些缺点:最小意外原则:只填充一个View模型的5个属性中的2个属性并得到空引用异常是很奇怪的,因为您不想查询数据库的额外数据。当View模型有5个属性时,我希望所有属性都被填充。异常(exception)证明了规则。关注点分离/单一职责原则:View模型在复杂站点上杂乱无章,因为您必须满足每个View的不同需求。如果涉及逻辑,它也会变得

c# - SpecFlow 可重用步骤定义

有没有办法让SpecFlow重用步骤定义?在其他工具中,我使用了GivenWhenThen基类,其中包含如下方法WhenAnOrderIsCreated--这会初始化一个protected订单成员,供继承类使用。似乎无法与SpecFlow一起使用(似乎不喜欢继承)有没有办法跨功能共享步骤?非常感谢 最佳答案 为什么是的,这是可能的-从步骤功能(https://specflow.org/documentation/Calling-Steps-from-Step-Definitions/)检查调用步骤简而言之,您创建了一个继承自Step

c# - 使用 System.IO.File 辅助方法的 "sequential"文件 I/O 是否安全?

我刚看到这个问题:IsitsafetousestaticmethodsonFileclassinC#?.总而言之,OP有一个IOException,因为此ASP.NET代码片段中正在使用文件:vartext=File.ReadAllText("path-to-file.txt");//DosomethingwithtextFile.WriteAllText("path-to-file.txt");我的第一个想法是,由于多个ASP.NET重叠请求,这是一个简单并发访问问题。我要解决的问题是将I/O集中到一个同步的线程安全类中(或删除文件以支持其他内容)。我阅读了这两个答案,当我正要对其中

c# - 依赖项目之间的依赖关系不流动,导致 System.IO.FileNotFoundException

假设我的解决方案有2个项目:第一个称为“MainProject”(一个.NETStandard2.0项目)。第二个称为“MainProjectTests”(一个NUnit测试项目),每个类的一些单元测试都放入“MainProject”。第一个项目(MainProject)有一个名为“dependencyX”的NuGet依赖项。显然,项目“MainProjectTests”引用了“MainProject”。因此,当测试运行器运行“MainProjectTests”测试时,使用“dependencyX”从“MainProject”调用方法时,我得到了一个System.IO.FileNotF

c# - 如何使设计器可以使用复合组件?

我正在尝试编写自定义WinForms组件,我编写了几个简单的验证器组件,用于与自动连接验证事件的ErrorProvider子类一起使用。得益于IExtenderProvider,所有这些组件都可以添加到表单中并仅使用设计器进行连接。现在,在尝试更上一层楼的过程中,我正在尝试获得一个可与设计器一起使用的复合验证器。我可以启动它并使用代码,但这真的很容易。我想让它以仅限设计师的方式工作。我的困难在于公开一个属性,该属性是具有相同形式的其他验证器的集合。所有验证器都直接继承自Component,并实现了一个IControlValidator接口(interface)。如果有帮助,我愿意改变它

c# - 如何在 .NET 中重用套接字?

我正在尝试重新连接到已断开连接的套接字,但出于某种原因它不允许这样做,即使我调用了Disconnect方法并将参数“reuseSocket”设置为true。_socket=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);_socket.Connect(ipAddress,port);//...receivedata_socket.Disconnect(true);//reuseSocket=true//...wait_socket.Connect(ipAddress,port);//thr